# Необходимо ввести целое N, затем N целых чисел. Вывести из этих чисел только чётные, причём в обратном порядке 
# ps (стеком пользоваться запрещается :) )
#
# in:	6
#	12
#	-11
#	3
#	88
#	0
#	1
#
# out: 	0
#	88
#	12

.data
array:

.text
	
	la s0 array 		# адрес начала данных
	la t0 array		# адрес доступный для записи следующего числа
	li a7 5			# системный вызов считывания целого числа
	ecall
	mv s1 a0 		# количество чисел для ввода
loop:
	bge  zero s1 out_num	# если количество чисел уже меньше или равно нулю, переходим на вывод
	ecall
	addi s1 s1 -1		# уменьшаем счетчик
	andi t2 a0 1		# последний бит установлен - не четное число
	bne zero t2 loop
	sw a0 (t0)		# добавляем очередное число
	addi t0 t0 4		# передвигаем на следующий свободный адрес
	j loop
	
out_num:
	
loop_out:
	bgeu s0 t0 end		# если указатель на свободное место достиг начала завершаем программу
	addi t0 t0 -4		# сдвигаем указатель на слово
	li a7 1			# будем выводить на печать число
	lw a0 (t0)		# считываем слово по адресу указателя
	ecall
	li      a7 11           # Выведем перевод строки
	li      a0 10
	ecall
	j loop_out
	
end:	
	li a7 10		# останов
	ecall	
	
